Tool-Supported Multi-Level Language Evolution
نویسندگان
چکیده
Through their high degree of specialization, domain specific languages (DSLs) promise higher productivity and thus shorter development time and lower costs than general purpose programming languages. Since many domains are subject to continuous evolution, the associated DSLs inevitably have to evolve too, to retain their value. However, the continuous evolution of a DSL itself can be very expensive, since its compiler as well as existing words (i. e. programs) have to be adapted according to the changes to a DSL’s specification. These maintenance costs compromise the expected reduction of development costs and thus limit the success of domain specific languages in practice. This paper proposes a concept and a tool for the evolutionary development of domain specific languages. It provides language evolution operations that automate the adaptation of the compiler and existing DSL programs according to changes to the DSL specification. This significantly reduces the cost of DSL maintenance and paves the ground for bottom-up development of domain specific languages. 1 Domain Specific Chances and Limitations Albeit three decades of intense research and significant progress in research and practice, the development and maintenance of software systems still constitutes a time-consuming, costly and risky endeavor. The reduction of software development and maintenance costs thus remains a research topic of paramount importance to software engineering. A basic idea behind many approaches that attempt to reduce these costs is to increase the productivity of software developers. One approach to raise productivity that has received increased attention in recent years, are domain specific languages. 1.1 Productivity Through Specialization A domain-specific language (DSL) is a programming language or executable specification language that offers, through appropriate notations and abstractions, expressive power focused on, and usually restricted to, a particular problem domain [1]. Hence, the key characteristic of domain specific languages is their specialization to a problem domain. This specialization allows them to offer language constructs and abstractions tailored to the class of problems from this domain. DSLs typically allow these problems to be described very directly and concisely, requiring less developer effort than general purpose programming languages. DSLs thus have the potential to increase productivity and decrease costs of software development. Particularly prominent examples for the benefits of DSLs are found in the compiler construction field with specialized languages and generators (amongst others) for hashing (e. g. gperf), scanners, and parsers. Tools for the interactive design of graphical user interfaces, the query language SQL, interface definition languages like WSDL or modeling languages like MATLAB/Simulink add further examples for the benefits of DSLs, i. e. purpose-built languages with powerful generators. Besides reduced development time and cost, DSLs are a promising mean to decrease the maintenance cost of software because of the reduced code size and increased comprehensibility, both due to the higher expressiveness of DSLs compared to general-purpose languages. The decrease of maintenance costs is particularly important since 60-80% of the costs of software are usually not devoted to initial development but to maintenance [2–4]. However, DSLs only help to reduce overall maintenance costs, as long as the costs for development and maintenance of the DSL itself can be amortized. If unanticipated changes to a domain require changes to the DSL definition, maintenance costs can be high, as noted in [5].
منابع مشابه
MMAX: A Tool for the Annotation of Multi-modal Corpora
We present a tool for the annotation of XMLencoded multi-modal language corpora. Nonhierarchical data is supported by means of standoff annotation. We define base level and suprabase level elements and theory-independent markables for multi-modal annotation and apply them to a cospecification annotation scheme. We also describe how arbitrary annotation schemes can be represented in terms of the...
متن کاملStrategy Competition in the Evolution of Pronouns: a Case-study of Spanish Leísmo, Laísmo and Loísmo
Pronouns form a particularly interesting part-of-speech for evolutionary linguistics because their development is often lagging behind with respect to other changes in their language. Many hypotheses on pronoun evolution exist – both for explaining their initial resilience to change as well as for why they eventually cave in to evolutionary pressures – but so far, no one has proposed a formal m...
متن کاملMaking tools and making sense: complex, intentional behaviour in human evolution
Stone tool-making is an ancient and prototypically human skill characterized by multiple levels of intentional organization. In a formal sense, it displays surprising similarities to the multi-level organization of human language. Recent functional brain imaging studies of stone tool-making similarly demonstrate overlap with neural circuits involved in language processing. These observations co...
متن کاملA unified framework for multi-level modeling
With the growing importance of modeling in software engineering and knowledge engineering, and the accelerating convergence of these two disciplines through the confluence of internet-based software applications, the need for a simple, unified information modeling framework fulfilling the use cases of both communities has increased significantly over recent years. These use cases include switch...
متن کاملCognitive science, language as a tool for interaction, and a new look at language evolution
We explore prerequisites necessary for embedding Dynamic Syntax within an account of language evolution. We show how the dynamics of processing as modelled in Dynamic Syntax display remarkable parallelism with Clark’s (2016) Predictive Processing Model and that the interactive stance of a combined DS/PPM model of language/cognition reflects the Multi-Level Selection Hypothesis – with groups as ...
متن کاملMT-Scribe: A Flexible Tool to Support Model Evolution
Model evolution is an essential activity in software system modeling, which is traditionally supported by manual editing or writing model transformation rules. However, this process presents challenges to those who are unfamiliar with a model transformation language or abstract syntax definitions. This demonstration presents an approach to ease the implementation of model evolution tasks by rec...
متن کامل